IF exists(SELECT * FROM dbo.sysobjects WHERE name='WEB_vrijeLokalen' AND xtype='P') 
BEGIN
	DROP PROCEDURE WEB_vrijeLokalen
END
GO

CREATE   procedure WEB_vrijeLokalen
(@dag varchar(2))
as

-- Er wordt een tabel opgezet die gevuld wordt met lokalen en uren

create table #uren
(uur char(2))
insert #uren(uur) values ('1')
insert #uren(uur) values ('2')
insert #uren(uur) values ('3')
insert #uren(uur) values ('4')
insert #uren(uur) values ('5')
insert #uren(uur) values ('6')
insert #uren(uur) values ('7')
insert #uren(uur) values ('8')
 
create table #uurLokaal
(uur char(2),
lokaal varchar(20))

insert into #uurLokaal 
select uur, lokalen 
from #uren 
cross join 
lokalenVolgorde 
where len(volgorde) > 0

-- Er wordt een tabel gevuld met de lokalen en de uren, vanuit de 
-- roostervarianten/seminarielokalen

create table #hetRooster
	(deLeraar char(4),
	hetVak char(2),
	deKlas varchar(20) ,
	deDag char(2) ,
	hetUur char(2),
	hetLokaal varchar(20)) 

declare @nu datetime

declare @lokaal varchar(20)

set @nu=getDate()

declare lokaalCursor cursor for
  select distinct lokalen from lokalenVolgorde
  where len(volgorde) > 0
open lokaalCursor

fetch next from lokaalCursor into @lokaal
while (@@fetch_status = 0) 
  begin
    insert into #hetRooster(deLeraar,hetVak,deKlas,deDag,hetUur,hetLokaal)
    execute leraars..RV_weekroosterLokaal @lokaal,@nu    
    fetch next from lokaalCursor into @lokaal
  end

close lokaalCursor
deallocate lokaalCursor

-- Samenstellen van de rooster vrije lokalen

select ul.uur,ul.lokaal,r.deKlas
from #uurLokaal as ul
left join (select deKlas,hetLokaal,hetUur 
	from #hetRooster 
	where deDag = @dag) as r
on r.hetLokaal = ul.lokaal
and r.hetUur = ul.uur
where r.deKlas is null 
order by ul.uur,ul.lokaal